package com.xuanzheng.company.dao;

import com.xuanzheng.company.entity.Company;
import java.util.List;

public interface CompanyDao {
    /**
     * 添加公司
     * @param company 公司对象
     * @return 是否添加成功
     */
    boolean addCompany(Company company);
    
    /**
     * 根据ID获取公司信息
     * @param id 公司ID
     * @return 公司对象
     */
    Company getCompanyById(String id);
    
    /**
     * 根据统一社会信用代码获取公司信息
     * @param creditCode 统一社会信用代码
     * @return 公司对象
     */
    Company getCompanyByCreditCode(String creditCode);
    
    /**
     * 根据负责人ID获取公司信息
     * @param managerId 负责人ID
     * @return 公司对象
     */
    Company getCompanyByManagerId(String managerId);
    
    /**
     * 更新公司员工数量
     * @param companyId 公司ID
     * @param increment 增量，可以为正数或负数
     * @return 是否更新成功
     */
    boolean updateEmployeeCount(String companyId, int increment);
    
    /**
     * 获取所有公司列表
     * @return 公司列表
     */
    List<Company> getAllCompanies();
    
    /**
     * 获取下一个员工编号
     * @param companyId 公司ID
     * @return 5位员工编号
     */
    String getNextEmployeeNumber(String companyId);
    
    /**
     * 更新公司状态
     * @param id 公司ID
     * @param status 新状态
     * @return 是否更新成功
     */
    boolean updateCompanyStatus(String id, int status);
} 